changed to form configurable, name changed, small clarifications

Judy Ngai 9 年之前
父节点
当前提交
5fb7dd5d88
共有 2 个文件被更改,包括 17 次插入5 次删除
  1. 15 3
      app/models/agents/qpx_agent.rb
  2. 2 2
      spec/models/agents/qpx_spec.rb

+ 15 - 3
app/models/agents/qpx_agent.rb

@@ -1,17 +1,18 @@
1 1
 module Agents
2
-  class QpxAgent < Agent
2
+  class GoogleFlightsAgent < Agent
3
+    include FormConfigurable
3 4
 
4 5
     cannot_receive_events!
5 6
     default_schedule "every_12h"
6 7
 
7 8
 
8 9
     description <<-MD
9
-      The QpxExpressAgent will tell you the minimum airline prices between a pair of cities. The api limit is 50 requests/day.
10
+      The GoogleFlightsAgent will tell you the minimum airline prices between a pair of cities. The api limit is 50 requests/day.
10 11
 
11 12
       Follow their documentation here (https://developers.google.com/qpx-express/v1/prereqs#get-a-google-account) to retrieve an api key.
12 13
       After you get to the google developer console, created a project, enabled qpx express api then you can choose `api key` credential to be created.
13 14
 
14
-      `Origin` and `Destination` requires `airport code`.
15
+      The `origin` and `destination` options require an [airport code](http://www.expedia.com/daily/airports/AirportCodes.asp).
15 16
 
16 17
       All the default options must exist. For `infantInSeatCount`, `infantInLapCount`, `seniorCount`, and `childCount`, leave them to the default value of `0` if its not necessary.
17 18
 
@@ -59,6 +60,17 @@ module Agents
59 60
       }
60 61
     end
61 62
 
63
+    form_configurable :qpx_api_key, type: :string
64
+    form_configurable :adultCount
65
+    form_configurable :origin
66
+    form_configurable :destination
67
+    form_configurable :date
68
+    form_configurable :childCount
69
+    form_configurable :infantInSeatCount
70
+    form_configurable :infantInLapCount
71
+    form_configurable :seniorCount
72
+    form_configurable :solutions
73
+
62 74
     def validate_options
63 75
       errors.add(:base, "You need a qpx api key") unless options['qpx_api_key'].present?
64 76
       errors.add(:base, "Adult Count must exist") unless options['adultCount'].present?

+ 2 - 2
spec/models/agents/qpx_spec.rb

@@ -1,6 +1,6 @@
1 1
 require 'rails_helper'
2 2
 
3
-describe Agents::QpxAgent do
3
+describe Agents::GoogleFlightsAgent do
4 4
   before do
5 5
 
6 6
     stub_request(:post, "https://www.googleapis.com/qpxExpress/v1/trips/search?key=800deeaf-e285-9d62-bc90-j999c1973cc9").to_return(
@@ -22,7 +22,7 @@ describe Agents::QpxAgent do
22 22
       'solutions'=> 3
23 23
     }
24 24
 
25
-    @checker = Agents::QpxAgent.new(:name => "tectonic", :options => @opts)
25
+    @checker = Agents::GoogleFlightsAgent.new(:name => "tectonic", :options => @opts)
26 26
     @checker.user = users(:bob)
27 27
     @checker.save!
28 28
   end